home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / system / mail / transpor / ifmail23.z / ifmail23 / ifmail / iflib / clibrary.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-11  |  3.7 KB  |  132 lines

  1. /*  $Revision: 1.17 $
  2. **
  3. **  Here be declarations of routines and variables in the C library.
  4. **  You must #include <sys/types.h> and <stdio.h> before this file.
  5. */
  6.  
  7. #if    defined(DO_HAVE_UNISTD)
  8. #include <unistd.h>
  9. #endif    /* defined(DO_HAVE_UNISTD) */
  10.  
  11. #if    defined(DO_HAVE_VFORK)
  12. #include <vfork.h>
  13. #endif    /* defined(DO_HAVE_VFORK) */
  14.  
  15.     /* Generic pointer, used by memcpy, malloc, etc. */
  16.     /* =()<typedef @<POINTER>@ *POINTER;>()= */
  17. typedef char *POINTER;
  18.     /* What is a file offset?  Will not work unless long! */
  19.     /* =()<typedef @<OFFSET_T>@ OFFSET_T;>()= */
  20. typedef long OFFSET_T;
  21.     /* What is the type of an object size? */
  22.     /* =()<typedef @<SIZE_T>@ SIZE_T;>()= */
  23. typedef int SIZE_T;
  24.     /* What is the type of a passwd uid and gid, for use in chown(2)? */
  25.     /* =()<typedef @<UID_T>@ UID_T;>()= */
  26. typedef int UID_T;
  27.     /* =()<typedef @<GID_T>@ GID_T;>()= */
  28. typedef int GID_T;
  29.     /* =()<typedef @<PID_T>@ PID_T;>()= */
  30. typedef int PID_T;
  31.     /* What should a signal handler return? */
  32.     /* =()<#define SIGHANDLER    @<SIGHANDLER>@>()= */
  33. #define SIGHANDLER    void
  34.  
  35. #if    defined(SIG_DFL)
  36.     /* What types of variables can be modified in a signal handler? */
  37.     /* =()<typedef @<SIGVAR>@ SIGVAR;>()= */
  38. typedef int SIGVAR;
  39. #endif    /* defined(SIG_DFL) */
  40.  
  41. /* =()<#include @<STR_HEADER>@>()= */
  42. #include <string.h>
  43. /* =()<#include @<MEM_HEADER>@>()= */
  44. #include <memory.h>
  45.  
  46.  
  47. /*
  48. **  It's a pity we have to go through these contortions, for broken
  49. **  systems that have fd_set but not the FD_SET.
  50. */
  51. #if    defined(FD_SETSIZE)
  52. #define FDSET        fd_set
  53. #else
  54. #include <sys/param.h>
  55. #if    !defined(NOFILE)
  56.     error -- #define NOFILE to the number of files allowed on your machine!
  57. #endif    /* !defined(NOFILE) */
  58. #if    !defined(howmany)
  59. #define howmany(x, y)    (((x) + ((y) - 1)) / (y))
  60. #endif    /* !defined(howmany) */
  61. #define FD_SETSIZE    NOFILE
  62. #define NFDBITS        (sizeof (long) * 8)
  63. typedef struct _FDSET {
  64.     long    fds_bits[howmany(FD_SETSIZE, NFDBITS)];
  65. } FDSET;
  66. #define FD_SET(n, p)    (p)->fds_bits[(n) / NFDBITS] |= (1 << ((n) % NFDBITS))
  67. #define FD_CLR(n, p)    (p)->fds_bits[(n) / NFDBITS] &= ~(1 << ((n) % NFDBITS))
  68. #define FD_ISSET(n, p)    ((p)->fds_bits[(n) / NFDBITS] & (1 << ((n) % NFDBITS)))
  69. #define FD_ZERO(p)    (void)memset((POINTER)(p), 0, sizeof *(p))
  70. #endif    /* defined(FD_SETSIZE) */
  71.  
  72.  
  73. #if    !defined(SEEK_SET)
  74. #define SEEK_SET    0
  75. #endif    /* !defined(SEEK_SET) */
  76. #if    !defined(SEEK_END)
  77. #define SEEK_END    2
  78. #endif    /* !defined(SEEK_END) */
  79.  
  80. /*
  81. **  We must use #define to set FREEVAL, since "typedef void FREEVAL;" doesn't
  82. **  work on some broken compilers, sigh.
  83. */
  84. /* =()<#define FREEVAL @<FREEVAL>@>()= */
  85. #define FREEVAL int
  86.  
  87. extern int        optind;
  88. extern char        *optarg;
  89. #if    !defined(__STDC__)
  90. extern int        errno;
  91. #endif    /* !defined(__STDC__) */
  92.  
  93. extern char        *getenv();
  94. extern char        *inet_ntoa();
  95. extern char        *mktemp();
  96. #if    !defined(strerror)
  97. extern char        *strerror();
  98. #endif    /* !defined(strerror) */
  99. extern long        atol();
  100. extern time_t        time();
  101. extern unsigned long    inet_addr();
  102. extern FREEVAL        free();
  103. extern POINTER        malloc();
  104. extern POINTER        realloc();
  105. #if    defined(ACT_MMAP)
  106. extern char        *mmap();
  107. #endif    /* defined(ACT_MMAP) */
  108.  
  109. /* Some backward systems need this. */
  110. extern FILE    *popen();
  111.  
  112. /* This is in <mystring.h>, but not in some system string headers,
  113.  * so we put it here just in case. */
  114. extern int    strncasecmp();
  115.  
  116. /* =()<extern @<ABORTVAL>@    abort();>()= */
  117. extern int    abort();
  118. /* =()<extern @<ALARMVAL>@    alarm();>()= */
  119. extern int    alarm();
  120. /* =()<extern @<EXITVAL>@    exit();>()= */
  121. extern void    exit();
  122. /* =()<extern @<GETPIDVAL>@    getpid();>()= */
  123. extern int    getpid();
  124. /* =()<extern @<LSEEKVAL>@    lseek();>()= */
  125. extern long    lseek();
  126. /* =()<extern @<QSORTVAL>@    qsort();>()= */
  127. extern int    qsort();
  128. /* =()<extern @<SLEEPVAL>@    sleep();>()= */
  129. extern int    sleep();
  130. /* =()<extern @<_EXITVAL>@    _exit();>()= */
  131. extern int    _exit();
  132.